package leetcode100;

import java.util.Scanner;

/**
 * @author shkstart
 * 求一个int类型数字对应的二进制数字中1的最大连续数，例如3的二进制为00000011，最大连续2个1
 *
 * 数据范围：数据组数：1≤t≤5     1≤n≤500000
 * 进阶：时间复杂度：O(logn)\O(logn) ，空间复杂度：O(1)\O(1)
 * @create 2022-12-05-22:06
 */
public class Meme11_2 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int count = 0;
        int maxCount = 0;

        while(scanner.hasNext()){
            int n = scanner.nextInt();
            while (n!=0){
            //n&1搭配==1 可以判断n 的二进制数的最后以为是否为0
                if((n&1)==1){
                    count++;
                    maxCount = Math.max(count, maxCount);
                }else {
                    count=0;
                }
              //这里表示删除n二进制数的最后一个数字，（表示一个数字除2）
                n=n>>1;

            }
            System.out.println(maxCount);


        }
    }
}
